package com.yvon.service.demo.algorithm.offer;

import java.util.LinkedHashMap;
import java.util.Map;

/**
 * 在字符串 s 中找出第一个只出现一次的字符。如果没有，返回一个单空格。 s 只包含小写字母。
 */
public class P50 {
    public static void main(String[] args) {
        Solution solution = new P50().new Solution();
        char aabbcddgf = solution.firstUniqChar("aabbcddgf");
        System.out.printf(aabbcddgf + " ");
    }

    class Solution {
        public char firstUniqChar(String s) {
            LinkedHashMap<Character, Boolean> hashMap = new LinkedHashMap<>();
            for (int i = 0; i < s.length(); i++) {
                hashMap.put(s.charAt(i), !hashMap.containsKey(s.charAt(i)));
            }
            for (Map.Entry<Character, Boolean> m: hashMap.entrySet()) {
                if (m.getValue()) {
                    return m.getKey();
                }
            }
            return ' ';
        }
    }
}
